table of contents
SAVE_FLAGS(9) | Fonctions du noyau Linux | SAVE_FLAGS(9) |
NOM¶
save_flags, restore_flags - Sauver/restaurer l'état du processeur et les masques d'interruptions
SYNOPSIS¶
#include <asm/system.h>
unsigned long drapeaux;
void save_flags(drapeaux)
void restore_flags(drapeaux)
DESCRIPTION¶
Les macros save_flags et restore_flags coopèrent avec la fonction cli pour fournir une protection contre les interruptions pour les portions de code critique. La fonction save_flags sauve le contexte du processeur (son état courant), en particulier le niveau de priorité des interruptions, dans interrupt priority level, dans les drapeaux (qui doivent être des expressions affectables (l-value)). Ces drapeaux DOIVENT être ensuite passés à la fonction restore_flags afin de restaurer l'état du processeur.
La macro save_flags n'affecte pas l'état du processeur, mais les pilotes peuvent utiliser les fonctions cli(9) et sti pour désactiver et rétablir les interruptions après avoir sauvé les drapeaux courants. Dès la fin de la portion de code critique, la fonction restore_flags replace le processor dans son état initial (quand l'appel correspondant de save_flags fut executé).
Seules les valeurs renvoyées par save_flags peuvent être passées à restore_flags. Toute autre valeur peut provoquer des résultats imprévisibles et est certainement non portable.
VALEUR DE RETOUR¶
La macro restore_flags sauve l'état du processeur dans le paramètre drapeaux qui doit être une expression affectable non constante (non-const l-value).
DISPONIBILITɶ
Linux 1.0+
VOIR AUSSI¶
AUTEUR¶
Stephen Williams (steve@icarus.com)
BOGUES¶
Comment ces routines réagissent-elles sur une machine SMP (multi-processeurs) ?
TRADUCTION¶
Thierry Vignaud <tvignaud@mandrakesoft.com>, 1999
19 mars 1999 | Linux |